import '../../utils/extendApi'
import Pubsub from 'pubsub-js'
import { getEmailCode, loginByEmail } from '../../api/login'
// getApp() 方法获取全局的App()实例
const appInstance = getApp()

Page({
  data: {
    title: '欢迎回来',
    status: false,
    time: 30,
    timer: '', // 定时器
    email: '', // 输入的邮箱
    verCode: '', // 验证码
    inpCode: '' // 输入的验证码
  },

  // 点击发送邮件按钮的回调
  async sandEmail() {
    if (!this.data.status) {
      const _this = this
      this.setData({
        status: true
      })
      _this.data.timer = setInterval(() => {
        this.setData({
          time: this.data.time - 1
        })
        if (_this.data.time <= 0) {
          clearInterval(_this.data.timer)
          this.setData({
            status: false
          })
        }
      }, 1000)
      try {
        const res = await getEmailCode(this.data.email)
        if (res.code === 200) {
          this.setData({
            verCode: res.data
          })
        }
      } catch (err) {
        if (err.data.code === 201) {
          wx.toast({
            title: err.data.message,
            icon: 'error'
          })
          clearInterval(_this.data.timer)
          this.setData({
            status: false
          })
        }
      }
    }
  },

  // 点击立即登录按钮的回调
  async toLogin() {
    if (this.data.inpCode === this.data.verCode && this.data.inpCode !== '' && this.data.verCode !== '') {
      try {
        const res = await loginByEmail(this.data.email)
        if (res.code === 200) {
          appInstance.setToken(res.data)
          // 跳转到首页
          wx.switchTab({
            url: '/pages/index/index'
          })
          Pubsub.publish('login')
        }
      } catch (err) {
        wx.toast({
          title: err.data.message,
          icon: 'error'
        })
      }
    } else {
      wx.toast({
        title: '验证码不匹配',
        icon: 'error'
      })
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    wx.hideHomeButton()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    clearInterval(this.data.timer)
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    clearInterval(this.data.timer)
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    setTimeout(() => {
      wx.stopPullDownRefresh()
      wx.reLaunch({
        url: '/pages/login/login'
      })
    }, 300)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {}
})
